# ifndef _VISTA_H_

# define _VISTA_H_

# include "../Modelo/modelo.h"

# include "../Modelo/figura.h"

# include "../Modelo/poligono.h"

# include <fstream>

class Modelo;

enum Accion {seleccionar, punto, linea, rectangulo, circulo, poligono};

class Vista
{
	public:

		Vista() 
		{ 
			lienzo = 0; 
		}

		Vista(Modelo* m);

		Vista(const Vista& una_vista) 
		{
			lienzo = una_vista.lienzo;
		};

		~Vista() 
		{
		};

		Vista & operator= (const Vista& una_vista);

		void poner_modelo (Modelo* m);

		virtual void actualizar() = 0;

		virtual void actualizar_modelo();
		
		void Guardar();

	protected:

		Modelo* lienzo;
		
		list<Figura*> seleccionadas;
		
		list<Figura*> portaPapeles;
		
		list<Figura*> pintaAccion;
		
		bool finPoligono;
		
		Poligono* temp;
		
		Accion accion;
		
		string nombre;		
		
		void setAccion();		
		
	private:

};

#endif
